1. Field of the Invention
This invention is related to the field of data communications and, more particularly, to the use of forward error correcting codes in communication protocols.
2. Description of the Related Art
While individual computers enable users to accomplish computational tasks which would otherwise be impossible or impractical by the user alone, the capabilities of an individual computer can be multiplied by using it in conjunction with one or more other computers. Individual computers are therefore commonly coupled together to form a computer network.
Computers may be interconnected to form networks according to a variety of topologies. For example, several computers may each be connected to a single bus, they may be connected to adjacent computers to form a ring, or they may be connected to a central hub to form a star configuration. While a variety of network configurations have arisen, one such configuration which has become popular is the “cluster”. Generally speaking, a cluster is a collection of computing resources (or “nodes”) which may be treated as a single computing resource. Typically, each of the nodes within the cluster represent fully realized computing resources in and of themselves. For example, a very simple cluster may include two nodes. Each of the two nodes in this simple cluster may include their own processing and storage resources and may be fully capable of providing service to network users on its own. Consequently, if a single node in a multi-node cluster were to fail, network operations may continue. Larger network configurations may include clusters with hundreds of nodes, computing grids with thousands of nodes, or a variety of other configurations.
While coupling computing resources together may serve to increase availability or reliability, it is generally necessary or desirable for nodes within such clusters or networks to communicate with one another. However, in recent years computing applications have become increasingly data intensive. Consequently, the demands placed on networks due to the increasing amounts of data being transferred has increased dramatically and bandwidth is frequently at a premium. Therefore, inter-node communication may only serve to compete with network users and other applications for available bandwidth. Such competition may adversely impact system performance and response. Therefore, an efficient method of inter-node communication is desired.